The disclosure includes aspects of a packet transmission apparatus, a communication system and a program.
Data communication over wireless channels has become increasingly common. For example, WiFi is used for wireless communication for connections based on the IEEE 802.11 standard. Many other wireless channels may be used such as WiMAX, 3G, mesh networks, or community networks, to name a few. Wireless channels may be lossy such that data may often be lost during transmission due to any one of a variety of conditions. For example, weather conditions may be such that the transmission of communication data may be impaired. Likewise, there may be interference to data transmission from a variety of causes such as interference from other devices transmitting on the same channel. The wired communication channels may be lossy similarly to wireless channel as well. Even though the wired channel's transmission medium is less susceptible to external interference the active devices deployed in wired networks possess finite resources that contribute to transmission losses if overwhelmed by multiple, uncorrelated transmission sources. Any of these factors may contribute to additional loss in data packet transmission or increased data packet erasure rates.
In end-to-end transport protocols, e.g. Transmission Control Protocol (TCP), data communication is provided across interconnected networks or devices. Transmission Control Protocol (TCP) is utilized in communications networks in order to provide a mechanism for reliability, flow control, and congestion control.
In such transport protocols, of which TCP is one example, data to be transmitted is broken into packets of data. The data packets are transmitted to a receiver where the packets are verified and reassembled into the original message. An acknowledgement (ACK) is returned from the receiver to indicate that the data packets were received. If an ACK is not returned, the data packet may have to be re-transmitted. In addition, when the sender does not receive the ACK within a specified period of time, the transport protocol at the sender may timeout. This results in a reduced rate of transmission of packets as the transport protocol interprets the lack of an ACK as congestion in the network. Communications networks are by definition statistical in nature and packets are commonly lost creating “erasure losses” or received in a different transmitted order creating an “out of order delivery.” TCP will retransmit lost packets, rearrange received out of order packet sequences, and modulate transmission rates to minimize perceived congestion losses.
TCP is optimized for reliable data delivery rather than minimizing transmission latency or maximizing network good-put. TCP incorporates algorithms for effective congestion management but not to minimize congestive losses (such as TCP Tahoe, Vegas and Reno) and relies upon end-to-end acknowledgements which limits the maximum transmission rates based upon the round trip time of the communications link. Since the round trip time of a communications link has no direct correlation with the available bandwidth, the maximum TCP transmission rate for a session is not tied to the available communications bandwidth.
When data packet loss is not due to congestion (e.g., packet loss is due to packet erasure or loss/corruption of packets in a lossy wireless link), TCP performance may suffer by interpreting such losses as congestion and invoking its congestion avoidance mechanism. Such congestion control may cause TCP to underestimate link capacity that results in a reduction of the congestion window and underutilization of available capacity. TCP suffers substantial performance degradation with long latency channels that even have only a 1% residual error rate. The confusion between congestion and non-congestive loss exists for other transport protocols as well.
Thus for all of its benefits, TCP suffers from a number of issues such as performance degradation, particularly in wireless links due to such problems as high bit error rates, packet erasure, or intermittent connectivity. In addition, data packet erasures and loss may negatively impact performance through TCP timeouts.
Loss and latency associated issues can affect other protocols in the communications stack, e.g., UDP, integrated with media streaming or VoIP, or any wireless link-layer design. Congestion may occur in a network when an amount of traffic on a communication link or path exceeds the capacity of the link or path. In such cases, excess data may be discarded or excess data may be buffered until congestion eases. However, if congestion persists, the congestion is controlled by discarding data packets in the buffer to clear the buffer in a packet-switched network. Moreover, channel impairments or interference may also result in signal to noise ratio (SNR) degradation and bit errors, which may in turn result in packet errors or erasures.
User Datagram Protocol (UDP) is utilized in communications networks primarily for real time applications that do not benefit from delay based reliability mechanisms (retransmissions). UDP is typically a fixed rate transmission without reliability mechanisms. In lossy environments, UDP based communication such as VoIP and video can appreciably degrade creating perceptible loss of fidelity.
In recent years, multimedia data is often conveyed through a best-effort communication network such as the Internet. In this type of data transfer, a download transmission system or a stream transmission system is used.
The multimedia data can include, for example, video files, audio files, combinations of these, and data including these as part. In the present disclosure, the multimedia data is used in the meaning of data including time information or information relating to a play-out order.
In the case of the download transmission system a data file is downloaded from a delivery server to a recording area at a receiver, and at the point in time when the transfer has completely ended, the play-out is started. Accordingly, the download transmission system is unsuitable for the play-out of multimedia data in which the play-out takes a long time, or for the play-out of multimedia data in which a real time play-out is required.
On the other hand, in the case of the streaming transmission system, the play-out of a data file is started by only partial data being transferred from a sender to a receiver. Thus, this is used for Internet telephone services, remote video conferencing, video on demand streaming, network camera streaming, Internet television and other services.
Thus, there exists a need for a method and system for reducing performance loss in a wireless communication network and enhancing transport layer protocol performance in lossy communication channels due to misinterpretation of the loss as being related to congestion. There is also a need for a method and system to increase network resiliency to bit or packet erasures.
Network Coding (NC) disclosed by Ahlswede et al. in 2003 has shown promise for improving information flow and delivering better performance in networks. In network coding, packets flowing in a network are considered algebraic entities; hence packets can be used by a transmitter to form sets of linear equations containing extra information to help with recovery of packets lost in transmission by a receiver.
U.S. Pat. No. 7,706,365 to Effros, et al. (Apr. 27, 2010) discloses randomized distributed network coding. The patent discloses a network and a method for transmitting processes in a network where a randomized coding approach is provided. Network nodes transmit on each outgoing link a linear combination of incoming signals specified by independently and randomly chosen code coefficients from a finite field.
While the methods disclosed in Effros et al. can be advantageous over routing-based approaches, the use of randomized coding adds overhead and larger payload due to the transmission of the coefficients in-band.